* xdisp.c (display_text_line): Handle case where line ends in a
authorJim Blandy <jimb@redhat.com>
Wed, 9 Jun 1993 07:21:28 +0000 (07:21 +0000)
committerJim Blandy <jimb@redhat.com>
Wed, 9 Jun 1993 07:21:28 +0000 (07:21 +0000)
continuation character but we never actually displayed any buffer
text (due to minibuffer prompt).

src/xdisp.c

index 2dc39a26169ff6a64bf53e7b14a84a74b8c7826b..6c6ee02a07dad3fbf39d0a0ce22d892cfc463342 100644 (file)
@@ -1665,7 +1665,7 @@ display_text_line (w, start, vpos, hpos, taboffset)
   register unsigned char *p;
   GLYPH *endp;
   register GLYPH *startp;
-  register GLYPH *p1prev;
+  register GLYPH *p1prev = 0;
   FRAME_PTR f = XFRAME (w->frame);
   int tab_width = XINT (current_buffer->tab_width);
   int ctl_arrow = !NILP (current_buffer->ctl_arrow);
@@ -1932,10 +1932,16 @@ display_text_line (w, start, vpos, hpos, taboffset)
   /* by backing up over it */
   if (p1 > endp)
     {
-      /* Start the next line with that same character */
-      pos--;
-      /* but at a negative hpos, to skip the columns output on this line.  */
-      val.hpos += p1prev - endp;
+      /* Don't back up if we never actually displayed any text.
+        This occurs when the minibuffer prompt takes up the whole line.  */
+      if (p1prev)
+       {
+         /* Start the next line with that same character */
+         pos--;
+         /* but at negative hpos, to skip the columns output on this line.  */
+         val.hpos += p1prev - endp;
+       }
+
       /* Keep in this line everything up to the continuation column.  */
       p1 = endp;
     }